package com.xy.provider;

import com.xy.api.HelloRpc;
import com.xy.core.ProtocolConfig;
import com.xy.core.RegistryConfig;
import com.xy.core.RpcBootstrap;
import com.xy.core.ServiceConfig;
import com.xy.provider.impl.HelloRpcImpl;

public class RpcProviderApplication {

    public static void main(String[] args) {

        // 服务提供方需要注册服务，启动服务
        // 1、封装要发布的服务
        // 2、定义注册中心
        ServiceConfig<HelloRpc> service = new ServiceConfig<>();
        service.setInterface(HelloRpc.class);
        service.setRef(new HelloRpcImpl());

        // 3、通过启动引导程序，启动服务提供方
        //  （1）配置 -- 当前应用的名称 -- 注册中心 -- 序列化协议 -- 压缩方式（等等）
        //  （2）发布服务

        RpcBootstrap.getInstance()
                .application("rpc-provider")
                // 配置注册中心
                .registry(new RegistryConfig("127.0.0.1",2181))
                //  .registry(new RegistryConfig("127.0.0.1",2181))
                // 序列化协议
                .protocol(new ProtocolConfig())
                // 发布服务
                .publish(service)
                // 启动服务
                .start();

    }

}